package exer2;

import org.junit.Test;

/**
 * Date:2025/2/23
 * Author：zhouzhou
 * Description:
 */
public class StringTest {
    @Test
    public void test1() {
        String str = "abcdefg";
        String str2 = reverse(str, 2, 5);
        System.out.println(str);
        System.out.println(str2);
        String str3 = reverse2(str, 2, 5);
        System.out.println(str3);
    }

    /**
     * 方式1
     * @param str
     * @param start
     * @param end
     * @return
     */
    public String reverse(String str, int start, int end) {
        char[] chars = str.toCharArray();
        for (int i=start,j=end;i<j;i++,j--) {
            char temp = chars[i];
            chars[i] = chars[j];
            chars[j] = temp;
        }
        return new String(chars);
    }
    public String reverse2(String str, int startIndex, int endIndex) {
        //第一部分
        String finalStr=str.substring(0,startIndex);//ab
        //拼接第二部分
        for (int i=endIndex;i>=startIndex;i--) {
            finalStr+=str.charAt(i);
        }
        //第三部分
        finalStr+=str.substring(endIndex+1);
        return finalStr;
    }




    /**
     *  获取一个字符串在另一个字符串中出现的次数。
     *  比如：获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数
     * @param str abkabadkabkebfkabkskab
     * @param mainstr  ab
     * @return  次数
     */
    public int getCount(String str,String mainstr){
        int count=0;
        int index=str.indexOf(str);//记录第一次index的位置.
        while(index>=0){
            count++;
            //参数:mainstr 是查找的字符串
            //参数:index+mainstr.length是下一次查找的起点
            index=str.indexOf(mainstr,index+1);
        }
        return count;
    }
    @Test
    public void test2() {
        String str = "abkkcadkabkebfkabkskab";
        String mainstr="ab";
        System.out.println(getCount(str,mainstr));
    }

}
